package com.company.design.create.factory.normal;

/**
 * @author yingfing
 * @create 2020--09--26 11:37
 * @describe 简单工厂模式
 * 简单工厂模式分三种 :
 * 1.普通模式
 * 2.多个方法
 * 3.静态方法
 */
public class Test {
    /**
     * 举例如下 : (我们 举一个发送邮件和短信的例子)
     */
    public static void main(String[] args) {
        // 1. 普通模式
        SendFactory factory = new SendFactory();
        Sender sender = factory.produce("sms");
        sender.send();

        // 2.多方法模式
        SendFactory2 factory2 = new SendFactory2();
        Sender sender1 = factory2.produceSms();
        sender1.send();

        // 3. 多静态方法模式
        Sender sender2 = SendFactory3.produceMail();
        sender2.send();

    }

}
/**
 * 总结 :
 * 1. 工厂模式适合 : 凡是出现了大量的产品需要创建 , 并且具有共同的接口时,可以通过工厂方法模式进行创建
 * 2. 在以上的三种模式中 ,
 * 第一种如果传入的 字符有误,不能正确的创建对象
 * 第三种相对于第二种,不需要实例化工厂类
 * 3. 大多数情况下,我们会选用第三种 -- 静态工厂方法模式
 */